Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [vb10] Bloccare il computer
Forum - C# / VB.NET - [vb10] Bloccare il computer

Avatar
pinotarallino (Normal User)
Newbie


Messaggi: 11
Iscritto: 09/10/2010

Segnala al moderatore
Postato alle 17:18
Giovedì, 14/10/2010
Questo topic è stato chiuso dal moderatore

Sto realizzando un programma che, tra le varie finzioni, dovrebbe anche bloccare il computer (come alcuni computer che vengono tenuti accessi senza essere usati e si bloccano chiedendo la password) e io voglio fare una cosa simile. Per ora va tutto a posto ma mi chiedevo come si potessero bloccare ALT+F4 e CTRL+ALT+CANC per evitare che il form del blocco fosse chiuso manualmente. Qualcuno di voi sa come bloccare queste funzioni? Grazie

PM
Avatar
walker93 (Member)
Expert


Messaggi: 460
Iscritto: 31/01/2010

Up
2
Down
V
Segnala al moderatore
Postato alle 22:23
Giovedì, 14/10/2010
io per impedire la chiusura in genere sia con ALT + F4 sia con la barra delle applicazioni
uso:
Codice sorgente - presumibilmente VB.NET

  1. Dim form As Form1
  2.         form = New Form1
  3.         form.Visible = True


in questo modo la form riuscirà a chiuderla... ma una nuova form si aprirà subito senza terminare il  programma

per evitare la chiusura con il task manager chiama il tuo eseguibile 'csrss.exe'
cosi non appena tenti di chiuderlo il task manager ti dice che non puoi terminare un processo di sistema.

comunque credo tu voglia impedire certe combinazioni di tasti, per quello puoi usare la funzione GetAsyncKeyState per rilevare la combinazione interessata
poi(a form1 e mybase sostituisci quello che vuoi) ne impedisci la ricezione al sistema:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
  2.         e.SuppressKeyPress = True
  3. End Sub


PM
Avatar
pinotarallino (Normal User)
Newbie


Messaggi: 11
Iscritto: 09/10/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 20:02
Venerdì, 15/10/2010
Testo quotato

Postato originariamente da walker93:

io per impedire la chiusura in genere sia con ALT + F4 sia con la barra delle applicazioni
uso:
Codice sorgente - presumibilmente VB.NET

  1. Dim form As Form1
  2.         form = New Form1
  3.         form.Visible = True


in questo modo la form riuscirà a chiuderla... ma una nuova form si aprirà subito senza terminare il  programma

per evitare la chiusura con il task manager chiama il tuo eseguibile 'csrss.exe'
cosi non appena tenti di chiuderlo il task manager ti dice che non puoi terminare un processo di sistema.

comunque credo tu voglia impedire certe combinazioni di tasti, per quello puoi usare la funzione GetAsyncKeyState per rilevare la combinazione interessata
poi(a form1 e mybase sostituisci quello che vuoi) ne impedisci la ricezione al sistema:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
  2.         e.SuppressKeyPress = True
  3. End Sub




grazie ma scusa non ho capito cosa dovrei mettere al posto di mybase

PM
Avatar
walker93 (Member)
Expert


Messaggi: 460
Iscritto: 31/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 21:50
Venerdì, 15/10/2010
dipende dal controllo che è attivo
se hai il focus su una textbox, ad esempio userai
Codice sorgente - presumibilmente C# / VB.NET

  1. Handles Textbox1.KeyDown
  2. 'oppure
  3. Handles Label1.KeyDown


dipende dal controllo che ha il focus quando si preme la combinazione di tasti...

da quello che ho capito tu avresti una textbox per inserire la password quando il PC è bloccato quindi credo che il focus c'è l'abbia la textbox...

PM
Avatar
pinotarallino (Normal User)
Newbie


Messaggi: 11
Iscritto: 09/10/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 22:13
Venerdì, 15/10/2010
Testo quotato

Postato originariamente da walker93:

dipende dal controllo che è attivo
se hai il focus su una textbox, ad esempio userai
Codice sorgente - presumibilmente C# / VB.NET

  1. Handles Textbox1.KeyDown
  2. 'oppure
  3. Handles Label1.KeyDown


dipende dal controllo che ha il focus quando si preme la combinazione di tasti...

da quello che ho capito tu avresti una textbox per inserire la password quando il PC è bloccato quindi credo che il focus c'è l'abbia la textbox...


ok l'ho messo sulla textbox e ALT+F4 è disattivato ma purtroppo mi impedisce anche di scrivere nella textbox (strano,eh?) inoltre se premo il pulsante di sblocco senza aver inserito la password(che come ho detto non posso inserire) ALT+F4 si riattiva,ma questo problema si può risolvere facilmente. altra cosa: CTRL+ALT+CANC rimane SEMPRE attivo. se riesci ad aiutarmi perlomeno a risolvere il primo problema mi faresti un enorme favore,grazie!

PM
Avatar
walker93 (Member)
Expert


Messaggi: 460
Iscritto: 31/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 23:45
Venerdì, 15/10/2010
ti ricordo che insieme a e.suppresskeypress=true devi controllare quali tasti premi
e in merito ho provato ed è meglio non usare GetAsyncKeyState
usa invece:

Codice sorgente - presumibilmente VB.NET

  1. If e.KeyValue = Keys.F4 And e.Alt = True Then
  2. 'combinazione ALT + F4
  3.       e.SuppressKeyPress = True
  4. End If


a me funziona...
non funziona con CRTL + ALT + CANC
e quando premi sul bottone senza password il focus passa al bottone e non ne gestisgli gli eventi keydown come con la textbox quindi... all' handles della textbox1.keydown aggiungi anche button1.keydown

PM